/*
 * Matrix.h
 *
 *  Created on: Apr 4, 2011
 *      Author: gilang
 */

#ifndef MATRIX_H_
#define MATRIX_H_

class Matrix {
private:
	int baris;
	int kolom;
	double **values;
public:
	Matrix();
	virtual ~Matrix();

	Matrix(int b,int k);

	int getBaris() const
    {
        return baris;
    }

    int getKolom() const
    {
        return kolom;
    }

    double **getValues() const
    {
        return values;
    }

    void setBaris(int baris)
    {
        this->baris = baris;
    }

    void setKolom(int kolom)
    {
        this->kolom = kolom;
    }

    void setValues(double **values)
    {
        this->values = values;
    }

    void setValue(int i,int j,double v);

    double getValue(int i,int j);

    Matrix operator + (Matrix&);
    Matrix operator - (Matrix&);
    Matrix operator * (Matrix&);
    Matrix operator * (double);

    Matrix transpose();

};

class Vector{

private:
	int size;
	double *value;
public:
	Vector();
	virtual ~Vector();
	Vector(int size);
	double getValue(int i);
	void setValue(int i,double v);
    int getSize() const
    {
        return size;
    }

    void setSize(int size)
    {
        this->size = size;
    }
    double *getValue() const{
    	return value;
    }

    Vector operator*(double);

};


#endif /* MATRIX_H_ */
